/** 
 * Klasse Verlag speichert alle Informationen ueber den Verlag
 * 
 * Alle Methoden mit setze...() weisen einer Variablen einen Wert zu.
 * Alle gib...() Methoden liefern den Wert der jeweiligen Variablen
 * zurueck. Alle ...Hinzufuegen Methoden fuegen einen Wert einer Liste 
 * hinzu
 * 
 * Datei: Verlag.java 		        Autor: Simon Schindelmann 
 * Datum: 12.11.11                 	Version: 0.1
 * 
 */

package medienverwaltung;

import java.io.Serializable;
import java.util.ArrayList;
import kommunikation.Email;
import kommunikation.Telefonnummer;
import kommunikation.Wohnsitzadresse;

public class Verlag implements Serializable
{
  private static final long serialVersionUID = 6979176961999940501L;
  // Name des Verlags
  private String name;
  private ArrayList<Wohnsitzadresse> adresse 
  	= new ArrayList<Wohnsitzadresse> ();
  private ArrayList<Telefonnummer> telefonnummer 
  	= new ArrayList<Telefonnummer> ();
  private ArrayList<Email> email = new ArrayList<Email> ();


  public Verlag (String name)
  {
    this.name = name;
  }


  public Verlag (String name, Wohnsitzadresse adresse,
      Telefonnummer telefon, Email email)
  {
    this.name = name;
    this.adresse.add (adresse);
    telefonnummer.add (telefon);
    this.email.add (email);
  }

  
  /**
   * Fuegt eine Adresse dem Verlag hinzu.
   * @param adresse Adresse des Verlags.
   */
  public void adresseHinzufuegen (Wohnsitzadresse adresse)
  {
    this.adresse.add (adresse);
  }

  
  /**
   * Fuegt eine Telefonnummer dem Verlag hinzu.
   * @param telefon Telefonnumer des Verlags.
   */
  public void telefonHinzufuegen (Telefonnummer telefon)
  {
    telefonnummer.add (telefon);
  }


  /**
   * Fuegt eine Emailadresse dem Verlag hinzu.
   * @param telefon Emailadresse des Verlags.
   */
  public void emailHinzufuegen (Email email)
  {
    this.email.add (email);
  }

  
  /**
   * Gibt den Namen des Verlags zurueck.
   * @return Name des Verlags.
   */
  public String gibName ()
  {
    return name;
  }

  
  /**
   * Gbit eine Liste mit allen Adressen des Verlags zurueck.
   * @return ArrayListe mit den Adressen des Verlags.
   */
  public ArrayList<Wohnsitzadresse> gibAdresse ()
  {
    return adresse;
  }

  
  /**
   * Gbit eine Liste mit allen Telefonnumern des Verlags zurueck.
   * @return ArrayListe mit den Telefonnummern des Verlags.
   */
  public ArrayList<Telefonnummer> gibTelefonnummer ()
  {
    return telefonnummer;
  }

  /**
   * Gbit eine Liste mit allen Emailadressen des Verlags zurueck.
   * @return ArrayListe mit den Emailadressen des Verlags.
   */
  public ArrayList<Email> gibEmail ()
  {
    return email;
  }
}
